class HomeGame extends egret.Sprite{
	public HomeArr=[];//存储房子
	public BlockArr=[];//存放阴影
	public StrArrTop=[];//斑马线上
	public StrArrBot=[];//斑马线下
	public HintArr=[];//提示条
	private BarrArr=[];//存取障碍物
	public speed = 4;//移动速度
	public Err=RES.getRes("err_png");//未进区间提示条
	public OK=RES.getRes("yellow_png");//进入区间提示条
	public Red=RES.getRes("red_png");//中号房子
	public Green=RES.getRes("green_png");//大号房子
	public Yellow = RES.getRes("yellows_png");//小号房子
	private ImgUrlArr=["house1_png","house2_png","house3_png"];//房子资源
	private ImgBoxArr=["house1_box_png","house2_box_png","house3box_png"];//房子阴影资源
	private ImgRepArr=["house1_1_png","house2_2_png","house3_3_png"];//砸中替换碎玻璃的房子
	private BarrierArr=["shan_png","tree_png"];//障碍物资源
	public timer:egret.Timer = new egret.Timer(1000,0);//定时器创建房子
	public constructor() {
		super();
		this.addEventListener(egret.Event.ADDED_TO_STAGE,this.init,this);
	};
	// 初始化
	private init() {
		// 随机数a用来选择房子资源以及匹配对应的阴影资源 0小 1中 2大
		var a = Math.floor(Math.random()*3+0);
		
		// 随机数b用来选择房子的左右方向 0:left左 1:right右
		var b = Math.floor(Math.random()*2+0);
		
		// 随机数c用来更换提示要条
		var c = Math.floor(Math.random()*3+0);

		// 1s运动的速度  用来判断需要按下几秒钟 10毫秒运动一次 So 1S运动100次 
		var sec = this.speed*100;
		
		// 这个障碍物需要多少秒能够运动过去
		var endSec;
		
		
		// 创建房子和障碍物 中间色块阴影 提示条
		var homeObj = new egret.Bitmap(); //房子
		var barrObj =  new egret.Bitmap();//障碍物
		var block =new egret.Bitmap();//色块阴影
		var hint = new egret.Bitmap();//提示条
		var stripeTop = new egret.Bitmap();//上面斑马线
		var stripeBot = new egret.Bitmap();//下面斑马线

		// 初始化房子的资源
		homeObj.texture = RES.getRes(this.ImgUrlArr[a]);//房子
		barrObj.texture = RES.getRes(this.BarrierArr[b]);//障碍物
		block.texture = RES.getRes(this.ImgBoxArr[a]);//色块阴影
		hint.texture= this.Err;//阴影
		stripeTop.texture = RES.getRes("xian_png");//上面斑马线
		stripeBot.texture = RES.getRes("xian_png");//下面斑马线

		// 房子的宽高和房子的Y轴  障碍物的宽高和Y轴 中间色块阴影宽高和Y轴
		homeObj.width = Math.ceil( homeObj.texture.textureWidth / 2);//房子宽度
		homeObj.height =Math.ceil( homeObj.texture.textureHeight / 2);//房子高度
		if(this.HomeArr.length == 0){
			homeObj.y = 0 - homeObj.height;
		}else{
			homeObj.y = this.HomeArr[this.HomeArr.length-1].house.y-this.HomeArr[this.HomeArr.length-1].house.height - homeObj.height
		}
		barrObj.width =Math.ceil( barrObj.texture.textureWidth / 3);//障碍物宽度
		barrObj.height = Math.ceil(barrObj.texture.textureHeight / 3);//障碍物高度
		barrObj.y=homeObj.y;//障碍物
		
		block.width =Math.ceil( block.texture.textureWidth / 3);//房子阴影宽度
		block.y = homeObj.y;//房子阴影Y轴
		block.x=(this.stage.stageWidth - block.width) / 2;//阴影的X轴
		switch (a){
				case 0:
					block.height = Math.ceil(homeObj.height - homeObj.height * 0.31);//房子阴影高度
					break;
				case 1:
					block.height = Math.ceil(homeObj.height - homeObj.height * 0.28);//房子阴影高度
					break;
				case 2:
					block.height = Math.ceil(homeObj.height - homeObj.height * 0.19);//房子阴影高度
					break;
				default:
					break;	
		};//房子阴影高度
		
		hint.width = Math.ceil(hint.texture.textureWidth / 3);//提示条宽度
		hint.height =block.height;//提示条高度
		hint.y = block.y ;//提示条的Y轴
		hint.x =(this.stage.stageWidth - hint.width) / 2;//提示条的X轴
		
		stripeTop.width = block.width;//上面斑马线宽度
		stripeTop.height = Math.ceil(stripeTop.texture.textureHeight / 3);//上面斑马线高度
		stripeTop.x = block.x;//上面斑马线X轴
		stripeTop.y = block.y - stripeTop.height;//上面斑马线Y轴

		stripeBot.width = block.width;//下面斑马线宽度
		stripeBot.height = stripeTop.height;//下面斑马线高度
		stripeBot.x = block.x;//下面斑马线X轴
		stripeBot.y = block.y + block.height;//下面斑马线Y轴


		// 判断往左还是往右 0是在左 1是在右 如果在右a等于0或者1的时候需要水平翻转一下  在左的时候a等于2的时候需要翻转一下
		if(b == 0){
			// 判断翻转 根据房子大小判断障碍物的所需时间
			switch (a){
				case 0:
					homeObj.x = 0;
					barrObj.scaleX = -1;
					barrObj.x=Math.ceil(this.stage.stageWidth);
					endSec = homeObj.height * (1 - 0.31) / sec * 1000;
					break;
				case 1:
					homeObj.x = 0;
					barrObj.scaleX = -1;
					barrObj.x=Math.ceil(this.stage.stageWidth );
					endSec = homeObj.height * (1 - 0.28) / sec * 1000;
					break;
				case 2:
					homeObj.x = 0;
					barrObj.scaleX = -1;
					barrObj.x=Math.ceil(this.stage.stageWidth);
					endSec = homeObj.height * (1 - 0.19) / sec * 1000;
					break;
				default:
					break;	
			};
		}else{
			// 判断翻转 根据房子大小判断障碍物的所需时间
			switch (a){
				case 0:
					homeObj.scaleX = -1;
					homeObj.x=Math.ceil(this.stage.stageWidth);
					barrObj.x=0;
					endSec = homeObj.height * (1 - 0.31) / sec * 1000;
					break;
				case 1:
					homeObj.scaleX = -1;
					homeObj.x=Math.ceil(this.stage.stageWidth);
					barrObj.x=0;
					endSec = homeObj.height * (1 - 0.28) / sec * 1000;
					break;
				case 2:
					homeObj.scaleX = -1;
					homeObj.x=Math.ceil(this.stage.stageWidth);
					barrObj.x=0;
					endSec = homeObj.height * (1 - 0.19) / sec * 1000;
					break;
				default:
					break;	
			};
		};
		// 添加进舞台
		this.addChild(homeObj);
		this.addChild(barrObj);
		this.addChild(block);
		this.addChild(hint);
		this.addChild(stripeTop);
		this.addChild(stripeBot);
		// 跑马灯
	
		// 保存进数组
		let obj={
			house:homeObj,//房子
			isTrue:false, //用来控制是否点击正确
			endSec:endSec,//时间
			num:a,//判断大小中来加分数
			objX:b,//是左是右 
			objC:c,//提示条
			primeval:RES.getRes(this.ImgUrlArr[a]),//原始
			change:RES.getRes(this.ImgRepArr[a]),//砸中
		};
		this.HomeArr.push(obj);
		this.BarrArr.push(barrObj);
		this.BlockArr.push(block);
		this.HintArr.push(hint);
		this.StrArrTop.push(stripeTop);
		this.StrArrBot.push(stripeBot);
		
	};
	// 创建房子定时器
	public HoustTime() {
		this.timer.addEventListener(egret.TimerEvent.TIMER,this.init,this);
		this.timer.start();
	};
	// 启动房子移动帧动画 -- 60帧
	public starTime(){
		this.addEventListener(egret.Event.ENTER_FRAME, this.creaHoust,this);
	};
	// 房子位移动画
	public creaHoust() {
		for(var i =0;i<this.HomeArr.length;i++){
			
			this.HomeArr[i].house.y += this.speed; 
			this.BarrArr[i].y += this.speed;
			this.BlockArr[i].y += this.speed;
			this.HintArr[i].y += this.speed;
			this.StrArrTop[i].y += this.speed;
			this.StrArrBot[i].y += this.speed;
		
			// 如果房子的坐标超过屏幕，然后移除元素和数组里面的存储
			if(this.HomeArr[i].house.y >=  this.stage.stageHeight){
				if(this.HomeArr[i].house.parent != null){
					//开始移除元素
					this.HomeArr[i].house.parent.removeChild(this.HomeArr[i].house);
					this.BarrArr[i].parent.removeChild(this.BarrArr[i]);
					this.BlockArr[i].parent.removeChild(this.BlockArr[i]);
					this.HintArr[i].parent.removeChild(this.HintArr[i]);
					this.StrArrTop[i].parent.removeChild(this.StrArrTop[i]);
					this.StrArrBot[i].parent.removeChild(this.StrArrBot[i]);
				}
				this.HomeArr.splice(i,1);
				this.BarrArr.splice(i,1);
				this.BlockArr.splice(i,1);
				this.HintArr.splice(i,1);
				this.StrArrTop.splice(i,1);
				this.StrArrBot.splice(i,1);

			}
		};
	};
	// 结束动画
	public end(){
		this.timer.stop();//停止创建房子
		this.removeEventListener(egret.Event.ENTER_FRAME,this.creaHoust,this);//移除动画
	}
}